<?php
class User_dto extends Base_dto
{
	// Atributos del Usuario
	var $firstName;
	var $lastName;
	var $email;
	var $password;
	var $deBaja;
	
	function __construct()
    {
		parent::__construct();
		
		$this->load->model('Rol_user_dao', 'Rol_user_dao');
	}
	
	private $rolesUser = NULL;
	public function getRoles()
	{	
		if($this->rolesUser == NULL) {
			$this->load->model('Rol_user_dao', 'Rol_user_dao');
			$this->rolesUser = $this->Rol_user_dao->obtenerPorUsuario($this->id);
		}
		return $this->rolesUser;
	}
	
	public function setUnicoRol($idRol)
	{	
		if(sizeof($this->getRoles()) > 0)
		{
			$this->rolesUser[0]->idRol = $idRol;
		}
		else return $this->agregarRol($idRol);
	}
	
	public function getPrimerRol()
	{			
		$primerRol = new Rol_dto();
		$indice = 0;
		foreach($this->getRoles() as $rolActual)
		{
			if($indice == 0) $primerRol = $rolActual->getObjRol();
			else return $primerRol;
			$indice++;
		}
		
		return $primerRol;
	}
	
	public function agregarRol($idRol)
	{
		$rolUserExistente = $this->rolDeUsuarioExistente($idRol);
		if(!$rolUserExistente)
		{
			$rolUser = new Rol_user_dto();
			$rolUser->idUser = $this->id;
			$rolUser->idRol = $idRol;
			
			$this->rolesUser[] = $rolUser;
		}
	}
	
	private function rolDeUsuarioExistente($idRol)
	{
		$rolUserExistente = FALSE;
		
		foreach($this->getRoles() as $rolUser)
		{
			if($rolUser->idRol == $idRol) {
				$rolUserExistente = TRUE;
				break;
			}
		}
		
		return $rolUserExistente;
	}
}